{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 15.5. A bit of number theory with SymPy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *\n",
    "import sympy.ntheory as nt\n",
    "init_printing()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nt.isprime(2017)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "podoc": {
     "output_text": "2027"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKMAAAA6BAMAAAAuK/Q4AAAAMFBMVEX///92dnZERESqqqrMzMyI\niIhmZma6urrc3NwiIiIQEBAyMjJUVFSYmJju7u4AAABC2DRsAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAABEJJREFUWMOlWM1rE1EQ3yZNkzZtEk+CCOl/0IJHweQogjQgem3/AMF6\nEzwkXkWw4E3UerCoB93Sk0gxLXgTrEcPluZqpTT9SJpuPsa3u+/Nm/eVCL7T7uS3v30z85uZt/G8\n/1yJnt1+8M1/v/lTt968vLG9PAo5CT9sjA8hWi8VY+5SZPw6ApkHeHHh9u4VXI3Q+gRg826dIdfo\n04vQfpC578N3YrMgF0BbNWYc97vh3q+y20/y6T/QC9+XgqCMNhuypFM2ImMcjT12j6HLrUIhuqjC\niScfN5FFjbEVvhre8T0ww6mMeju+SAOIbVqROxrlOrPtBzX+axUAr3dgBbfBiezIVUsod87EziaY\nZTa+TAJqIw/H4jU2pMZ4EjmxhPFjJv7UFATCOibiZkVm4Nn1BgY7DVuh+kFa7gGcezwBR8KYAR4D\nKzIJtBj2I+MhKahQY3EufEAn2XWcCisyFVAtz53GwuhWhGWKAQs8pU2yo7bnRE63CeMMVLgLXWwB\nwJ2cAEx4WEbgOZHZPqF8Gv8+BzK5LBPx7vKY0Lg+5t3IDqFcjW/qUg9s4wADrrstGrctJ/JQBoi9\nZx4phZNMjdDhVVZA5CEHWJFVGSCv2pMFNUuAp9zHCm1fAyeSdkN/BWsLpYXu+EAaa57L2oqk/V00\nAxbovqcFPSyOeY8IpuVC0rXXElePtmu6NNIg20/YlKDnQpKViZqQvpiLUR0ndcpjF1IZQjUL5QKP\nVkqnPHchySoe2caaaAZjvO/FKwsQuJDU79c2Sj/ud960TgkuJM23bfjO8D4/mhKRcpUC2yYnBVPC\noGw4kGTf1lAuCuGNpFwkEo1XCjoWxhwKQ6VMGFvKmRKasqoygfrLjqBMmEotkqZAGgmGPGs4XnMg\nyb7LFr996Da8f4klQcpQ2hKela8eQZk1NskkcGwtHWWylN2UBClD0bLqHMfNtF7j4ELitCVDmrxH\njs+JoZQUKbMzMBjH6WgwOlHgQsqNNw3Kx7QcZnTKrgspw230IXZCJe0vrXTDKUXYKlIO0XXzNW9U\n38jsYR287ULK04OZsUCpD9AmZN+JxMmt1TxTzSvh8zV+CqhQrzpOJHZkPWXFc6Hl/ICfNpbonGk6\nkeIIqvf0FHzBw1fTiE2JxN5A4tlDoyzJLlBap8cg0W8LTiQeFOYVxjRRQHGJ64weWbGHmEjsCSrl\nApFdvcLLR0aqLpVuIvFMrIg148+SYl3mNdsniuq7kXj2UCh/H9NE1bizPVJKgyHIKFOgNfX6B/7Z\nu7t7pw4IIp2uMgQpjolldTaR1cUcVlDpwTCk+Notq8VElvB3FT5iws+GIk3KMfPbN/a8h6GsDEXy\nj+my+gbts5IzFXg5tocjTcq6CsQGcSPeZlKWjgsZnzbJwNO+p7FocjuwVvOSdXg7Cqk3afdKsy+V\n59pfKC4o4N8Aw1fm1+dg4+I/QQ9ukZu/q9CaPt6ShRoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "2027"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nt.nextprime(2017)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "podoc": {
     "output_text": "7919"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKAAAAA6BAMAAADFHE87AAAAMFBMVEX///9mZmYQEBC6uroyMjLc\n3NzMzMzu7u6qqqqIiIh2dnaYmJgiIiJUVFREREQAAABFlwjaAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAAA75JREFUWMOtmD1oU1EUx28/YpI2TQUnEW0RFdHhZRYkLoKDkCLoJG0Q\ndG0pSEGHZuxS0kVQBO2gi0s7iUWk9WNw0bg7xEHRQUj7TNombXp8n/edc+6HGbxL8u79vX/OPfec\nc++NEPmu+L8tB6v6gfTiVfj8QNP/fcJKjgJ8evHo9YJsM2H/oRL47b0ieAsqtIOR08Ba+PupBjRf\nzl0A+MH0hoBNiZNVLhhaWAS37H1Mhh9JyzpckJMrTK8d9A4D/Ay+1OEMtmbRR4igQtaZ4KWg9ym4\noaWD4MZrkDn+O0SIoELWdC4cAPgT2RT/hBAj3qj7vEQFVZLp7QaD1wAOR2+MwV70re/kh2NlwQQV\nMgUfb8+g3/sSfJbixRZiKp5S1JigQmaggIZn90NvATSTwIdls6BKZl1MN7bjoU7c1QcwbhZUyZEt\nEgJLUWhFvgxt2DULquTgHoKnmrF7oSUTC6BrFlTJ0RaCa9GDg7C0TB6doErOb+I0rcQRBTuy13uo\nmAQ1ZHEDOaQrg5ViyyZBKynSzob0LmziWX0zCVpJkYeyzHeE1WjcEEErKdbbcYniWMskaCVTsgpQ\nrEQD0SLIyJxMygzH2r35kJErHbx2BOvYVtlEphKH0ujyPLPVWxxSMo+4GouurjFTLGTV1Weob8RB\nT7nMSAdNvyrreuj3plHQTGZxCPWDrPt+lYN9o6CZ7JdRGCbAFnoFXKOgmVyJamuclS4qoRYLjaRX\ny/AJwXNNvNU06jYfGsksmZbvjsgDA50x2yobyRx5yX8t8vXszpgtDo1kkWShH+aRCxqVuiVTzGQj\nCScRHXmCwnGz7Q2Zc9lIpnEGhVHqwK+Z9EWvpjdQqOkEteQwLhrRjuX4R52zgULLJqglB1nxDrbZ\nEzX3a5j/m1ZBHTkPOFFos21SRrLK9ivcvOks9SaIyHpyyuPNL8qFngQx6VAryCmd1gaLICJTYJ7H\nCA1DiyAiMxbBHI0aiyAih9iBCLd5tl5mQUTmuWC2diW5NtAhJqgn+9lK+qu+Kve1prAI6slRJugv\n0riMhZZF0EBOAS3YmWT/zrMzn3oL0JFFJjicYFWyoeg2KR1ZZYID8s6XdmCbCtZIDhhILuiVx/2J\neB4FpQIs/5NcZ4Ki0SnElXxXyS9y4dWTiuB0tGVNkiBcWFh7Etww3z5+tVC2kdPsLuLZcd5/vgdw\nmYYIv1frST+w6S7q2XxwdO0ZrQtaQS3pr9VpKpgKL/rniN13rs/Fa3H3xoSNFPcfKv/OvHkHp470\n8scPJf8C8VxeoWUtuzUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "7919"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nt.prime(1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "podoc": {
     "output_text": "306"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHcAAAA5BAMAAAD+RamlAAAAMFBMVEX///+YmJiIiIjc3NxmZmZU\nVFTMzMy6urpEREQQEBAiIiIyMjJ2dnaqqqru7u4AAABosWwHAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAABHRJREFUSMd9V02IHEUU7s26M7vJbGcuAQ/CDnjxIjMSQrztQg45CGZA\n0EPAnYMHD8IselEQZzCYg0Q3GFFiwB4QhYBx5uIheuggqHhxFw9eVHYwKqiB/XM307M/n/XzXtWr\nnsnWpaur31f1fr73XnUU6RH/+lXy0ZU3onAUHrn41vfRyCh8ezv7tOxfF2HGc4HQvUSv7TRy2N+7\nRvYOvcaLeP/nuy+nwCUhdAw4Xzv7A3b6AVYtf/7K3de7w5p9fw3P6sesOslrE6d4Xj+r+EBiJ1Pc\n0s+J5AvzXsRn9kMT2HdS/9C8CKwK8Bz+I2H7nN8jxSYgju5iwU5a2A2UrlgNHobRO+14gBOcwpBm\nJWQ1B65i006W7S6z+I4/rQADmq6xVBQBbXFwmyeoq+e0t7SlluiUBFf9lvd52kRmTVQg9NTzpA/a\nujN6wgcymncWKLsOIgdum2/Ahl3y+8wAS4xQ8wabz/qUSFLruu3BdY6ac9JDYMc32ddRnFgD9MmH\nXm178gWvqnbOhnMx0+3M9WdIK3TYOt7au12HgyydVEzPEV1RiG3SFizRmhcr8IvSfzOfYi9ev+S4\nR6aWJFFjkA3rzjnjxiKfoSKx5ZdBplad8eNGwlvPBAqyMang2sgoukits494zwptcueBYKUssa8F\nmUpdu2dRJt3IUBy4z2mRA7eJVUr9F24Ov1wdBXdd3lfzYE2EEyamTwLKjMtjtD7wuSmCklpKa/LW\nirhVi14Cng6x8TK4qOmYheAN4l9/3uz/L7KgqP61gqwcHQXW/ItvNmjJ5XhUelvZMfSuXM6DD60X\nMUWYvx2lbTpheP5osCZvc8Ely8fu++nTZ08B7/XHgulNhQDLfUecQeCxPzwn03FgFQIu2uYlDLYy\n6t1x4NSfvCsI1cm3ISrRD7TZldSTAftJ6trR4LqoioMRcg8ZvDs2VBVeOwFRIs04DiqUi3luM0lW\nBZd9cXbVeNsWzzHgJgQzpkaSuwCqQyNZdZW4XZPgeqg3qFzN5cE9omFfdIJ8TUrIrBYE8fVqmwp8\nTYI7I7EyyjSDKJIbp/NgZcu9r89JInLnDKtnmdzZkOCecZLMY644W7LomxNnZXSmjM0zEGxicEmk\ngNmeWlUIXjC82Zdqt+0hQaPbY8eVJUkqJlcGIijGYa49Ub7sU9/1vJg2DqjKLE3YAWnY3LeZ+nXB\n7czSfVO4xvW0vpDrMfU7IiV3LOl6olntcVErC7ky638oqt6u2W5QE4lxwKo6DVusRSyos2Y8ewzv\nNGRKtvkGseHjt+XufzsiLg19r/E1Q1ziVhwi9sXnuPsck5dbrsloHx84Oeq22oIlT5e240jPuuFD\nYTLXmUlndEswdYX5NMd7z3HLq0pGt0iu4K5wdvsyke4TClAC02jOQPa+QmKPXhP3In20/muIL4Dv\n6NqqwTe/PYaw6/6J7NEo+gWZrHPqV2Lw+E+paKj0H4Ms7NivKoKrK2YlrJFGNPtRVr5Tt3HjzfxP\n0BMXkxtXlvJXpqfUHxhJ/g96Ldi5e4spRAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "306"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nt.primepi(2017)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "podoc": {
     "output_text": "<matplotlib.figure.Figure at 0x7f2d3c5f52b0>"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nERERERGHREZG4nK5HAlFHTt2xO12KxRlEwUjEREREREPHDp0iPbt2zsWiHr27MnJkyeZPXu2A91J\neulSOhERERGRTIiLiyM4ONixenXr1mXlypUULFjQsZqSfpoxEhERERHJgLi4OPr27etYKFq/fj1u\nt5uvvvpKociLFIzEp/3555+4XC5CQ0O91kPv3r2pXLkyMTExma6xdetWXC4X8+fPd7AzERERyW57\n9uwhODiY9957z+NavXv3xu12U7t2bQc6E08pGIlPiYqKonjx4gwbNszbrQCwZcsWPvjgA8LDwylS\npEim69xzzz2EhITw6quvcu7cOQc7FBERkeywZcsWXC4X9erVc6Te0aNHGTt2rCO1xBkKRuJTVq5c\nSVJSEo8++qi3WwFg9OjRBAYG8txzz3lca/DgwRw7dowZM2Y40JmIiIhkhxMnTuByuWjevLkj9X76\n6SfcbjcBAQGO1BPnKBiJT1m+fDnFixencePG3m6FPXv2sG7dOtq3b0+hQoU8rle3bl2qVq3K3Llz\nSUxMdKBDERERyQqJiYm89957uFwuKleu7EjNYcOG4Xa7uf322x2pJ85TMMpGLpcr03+Cg4MJDg7O\n8LiwsDCvnGvqkpXLli27Yru1ltDQUFwuF6NGjbritdOnT/P111/zyCOP4O/vf9NjfPLJJ7Rq1Yrb\nbruN4OBgGjVqxPjx47lw4cI1+1prmTZtGg0aNKBMmTJUr16df/zjH5w+fZqaNWtSs2bNa8YsXLgQ\nay0dOnRw7Bw7dOhAZGQk69atu+n5iYiISPY6ePAgLpeLEiVK0LdvX0dqvv3225w4cYJ///vfjtST\nrKNgJFli9OjR+Pn58eqrr14xOzJixAjef/99unfvfk1oWL16NfHx8Tz22GPpqt+jRw927drF448/\nTs+ePbHWMnr0aDp06EBCQsIV+w8dOpThw4dz5swZunfvTseOHVmzZg3t27fn4sWLaR5j3bp1+Pv7\nX/da4syc43333QfA2rVrb3qOIiIikj2stTz55JNpflCaGaNGjWL//v243W66dOlCvnx6Qk5OoGAk\nWaJmzZp06tSJ33//nUWLFgHw1ltvMXXqVNq3b8+ECROuGbN8+XKKFCly02t4f/jhB8aPH0/58uX5\n7rvvGD9+PK+88grffPMNLVu2ZMOGDURERFza/7vvvmP27NlUrlyZjRs38sYbbzBmzBg2btxIwYIF\n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\nKBhJntC0aVOaNm3q7TZEREQkg3744QceeeQRx56Ts2PHjjy/sIK1lnXr1hEREcHatWspU6YMDzzw\nAAULFsxQne7du/Pmm29SpkwZnnjiCUJCQqhRo0YWdZ31FIxERERExOds2LAhw6vW3kx0dHSeXn47\nISGBpUuXEhERwY4dOy5tP3bsGIsXL6Zbt24Zqle0aFG++OILqlatyh9//OF0u9lOwUhEREREfIbb\n7aZq1arEx8c7VnPPnj2ULFnSsXo5zblz51iwYAFTp04lMjIyzX2mTJlC165d03y2443ceeedTrTo\nE7QqnYiIiIh43bZt23C5XFSsWNGxUDR37lzcbneeDUVRUVGMGTOGGjVqMHz48OuGIoBdu3bx+eef\nZ2N3vkczRiIiIiLiFdZa9u7dS926dR2t+/rrrxMaGupozZxkz549TJkyhffff58LFy6ke1xERESG\nF2HITRSMRERERCRbnT9/nrJlyzped/LkyTzzzDOO180pfvjhByIiIlixYgXW2gyP37hxI5s3b6Ze\nvXpZ0J3v06V0DsvMm1AkLXoviYhIbtS7d2/HQ9F///tf3G53ngxFSUlJrFy5klatWvHwww+zfPly\nj36HWL58uYPd5SyaMXKQn58fiYmJ5Munf1bxXGJiYoZvgBQREfFVCQkJlCpVytGapUqV4vfff8+T\n/728cOECixcvZsqUKezatcvjei1btmTAgAEeP7sxJ9Nv8A4qVKgQ58+fJygoyNutSC5w/vx5ChUq\n5O02REREPBIdHU2lSpUcq/fOO+/QuHFjx0NWTuF2u5k7dy4zZszg6NGjHtXKnz8/Tz75JP3796d6\n9eoOdZhzKRg5KDAwkKioKAAKFy6Mv79/nl4rXzLOWktiYiLnz5/n7NmzlC5d2tstiYiIZNq3337L\no48+6kit5557jrfeesuRWjlRZGQk06ZNY968eZw7d86jWkFBQfTo0YM+ffpw6623OtRhzqdg5KD8\n+fNTunRpzp49y7Fjxxx7QjMkTz+nHkNyNz8/PwoVKkTp0qX1v7eIiORI69ato127do7UqlatGkuX\nLs2zv8D//PPPRERE8NFHH3Hx4kWPapUtW5bQ0FC6d++uK5zSoGDksPz581O8eHHH6+7evRuA22+/\n3fHaIiIiIk6IioqiatWqjtTK6yvM/frrr7z44ot8+eWXHteqXr06AwYM4PHHH6dAgQIOdJc7KRiJ\n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\nnTNnzjBv3rws6FByK91jJCIiIuKwmJgYxo8fz4cffsiBAwccrX3q1Cn8/HLfZ9sJCQl8/PHHTJo0\niV9++cWjWn5+frRr146mTZs61J3kBQpGIiIiIg4aPnw406ZNc7zuhg0bcuWKaTExMSxYsIApU6YQ\nGRnpUa2AgAC6du1Kv379qFSpkkMdSl6hYCQiIiLigJiYGMqVK5cltY8dO0bBggWzpLa3nDhxgpkz\nZzJr1iyio6M9quVyuXj++efp3bs3pUqVcqhDyWsUjEREREQ8tG7dOtq1a+d43e3bt3Pbbbc5Xteb\n9u/fz9SpU1m4cCGxsbEe1Spfvjx9+/alW7du3HLLLQ51KHmVgpGIiIhIJly8eJFhw4YxZ84cR+vO\nmzePtm3bOlrTF2zbto2IiAg++eQTkpKSPKp11113MXDgQDp27Ej+/Pkd6lDyOgUjERERkQw4cOAA\ntWrVcqzeI488wrhx4yhfvrxjNX3NqlWr6Ny5s8d1GjVqRHh4OA899FCuXqZcvEPBSEREROQmrLWs\nXr2aTp06OVbzrrvuYsOGDXniF/xmzZpRunRpoqKiMjzWGENISAhhYWHUr18/C7oTSaZgJCIiInId\nR48e5c4773S87r59+yhWrJjjdX1VQEAAoaGhvPzyy+keU6BAATp37syAAQOoUqVKFnYnkiz3LYIv\nIiIi4qHY2FhcLpejoejTTz/lxIkTuN3uPBWKUvXo0YPAwMCb7hcUFERYWNile5IUiiS7aMZIRERE\nJIW1ljp16rB//37Haq5du5Y6deo4Vi+ncrlcPPvss0yePDnN14ODgwkNDeXZZ5+laNGi2dydiGaM\nRERERACIjo6mWLFijoaigwcP5spQtHv3bqy1GR4XGhp6zSpyVapUISIigm3bthEWFqZQJF6jYCQi\nIiJ53oIFC6hUqZJj9VavXo3b7U7XpWM5ydatW+nUqRP169dnzZo1GR5ftmxZnnzySQDq16/PwoUL\n+f777+nWrVuue4Ct5Dy6lE5ERETyrH379tGpUyd27drlca169eqxbNkyChcu7EBnviMpKYnPP/+c\n119/ne3bt1/aPnHiRFq0aJHhekOHDqVLly40atQoT6zIJzmHgpGIiIjkOX/++Se1a9d2pFbPnj15\n8803HanlSxISEliyZAkRERH8+uuv17z+zTff8NNPP/HXv/41Q3UrVark6OyciFMUjERERCTP+N//\n/scjjzziSK0PPvggVz5oNCYmhgULFjBlyhQiIyNvuO+kSZOYN29eNnUmkrUUjERERCTXi4uLIzg4\n2OM6Y8eOpXfv3g505HtOnTrFrFmzmDFjBqdOnUrXmGXLlvHHH39wxx13ZHF3IllPiy+IiIhIrhYe\nHu5xKHryySdxu925MhRFRkYyfPhwatSoweuvv57uUATJy5tfb/ltkZxGM0YiIiKSKzl12dyRI0co\nVKiQAx35lt9//51JkybxwQcfcPHixUzXef/993nhhRcoVaqUg92JZD8FIxEREclVrLUUK1bMkVpu\nt9uROr5k06ZNTJgwgZUrV3pcq1mzZoSHh1OyZEkHOhPxLl1KJyIiIrnC/v37adiwoSOhqG3btrkq\nFFlr+eKLLwgJCeGhhx7yKBT5+fnRvn171q1bx9KlS2nWrFmuW4BC8ibNGImIiEiOtm3bNpo2bepI\nrddff53WrVtToUIFR+p528WLF1m6dCkTJ05k586dHtXKnz8/jz76KCNGjNBiC5IrKRiJiIhIjlWh\nQgVOnz7tcZ0333yTnj17OtCRb4iNjeW9994jIiKCP//806NagYGBPPfcc7Rs2ZKSJUsqFEmupWAk\nIiIiOc7Jkycd+QX9n//8J8OHD3egI9/gdruZPXs206dP5/jx4x7VKl26NKGhofTo0QOXy8Xu3bsd\n6lLENykYiYiISI5x8eJFWrVqxaZNmzyudfToUQICAhzoync8/fTTbNiwwaMaFStWJCwsjKeeeirX\n/fuI3IgWXxARERGf98Ybb+ByuShZsqTHoWjs2LG43e5c+Uu/J5cD1qxZkzlz5rB582Z69OiRK/99\nRG5EM0YiIiLik6y1PPDAA2zZssWRerNmzeKJJ55wpJaveuyxx7j99tvZu3dvusfcf//9DBo0iObN\nm2t1OcnTFIxERETE5yQkJDj2wND77ruPpUuX5okZEH9/f8LCwggLC7vhfsYYQkJCCA8Pp169etnU\nnYhv06V0IiIi4lO+/PJLR0LRG2+8wcGDB1m1alWeCEWpOnfuTHBwcJqv5c+fn65du/L999+zcOFC\nhSKRyygYiYiIiFdZa+natSsulwuXy8Xjjz/uUb2JEyfidrvp1asXgYGBDnWZ/eLi4vjtt98yPK5g\nwYKEhoZesa1IkSL069ePrVu3MmXKFKpWrepUmyK5hi6lExEREa+4cOECQ4cOZcGCBY7V/O233647\n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\nfvnlF1wulwOdOcftdjNr1iymTZuWqeW1L/fXv/6VIUOG0KpVKz2QVUR8loKRiIhIOllr6dKlS7pW\nXkuPP/74gxIlSjhSyylRUVFMmzaN//73vx6vHHf//fczdOhQmjRp4lMr6YmIpEXBSEREJB2mTp3K\nCy+84Fi96OhonwoLR48eZcGCBSxbtoy4uDiPaj3yyCMMHjyYe++916HuRESynoKRiIjIDUybNo3h\nw4c7Vq9evXp8+eWXjtVzwr/+9S9mzZpFYmJipmv4+fnRvn17Bg0aRI0aNRzsTkQkeygYiYiIXOXg\nwYMsXryYMWPGOFp306ZNVKlSxdGaTihUqFCmQ1H+/Pl56qmnCAsL44477nC4MxGR7KNgJCIikuLE\niRNUrlzZ0ZpTp06lXbt2FClSxNG6Turbty9vv/02Fy5cSPeYQoUK0b17d/r370/58uWzsDsRkeyh\nYCQiIgIsWLCAAQMGOFZv//79PrfS3PWUKlWKdu3asXjx4pvuGxQURK9evejTpw8lS5bMhu5ERLKH\ngpGIiORp33zzDY899phj9X766Sduv/12x+pll65du7JkyZLrXlJXsmRJ+vbty3PPPUfRokWzuTsR\nkaynhwmIiEiek5SUxKhRo3C5XI6Fok8++QS3250jQxFAcHAwISEh12wvV64cY8eOZfv27QwePFih\nSERyLc0YiYhInhIVFUXVqlUdq7dq1Sruu+8+x+p5Ij4+nkWLFrFr165MLRzRrVs3PvvsM6y13HHH\nHYSHh9OpUycKFCiQBd2KiPgWBSMREckzdu/eTf369R2pFRkZyS233OJILU/FxsayYMECIiIiiIyM\nxBhDt27dMhwAK1SowJAhQ7jrrrto27Yt/v7+WdSxiIjvUTASEZFcLykpidtuu41z5855XGvHjh38\n5S9/caArz509e5a5c+cyZcoUoqKiLm231jJ+/HimT5+e4ZojRoxwskURkRxD9xiJiEiuduLECYoX\nL+5RKHriiSfYunUrbrfbJ0KR2+1m7Nix1KxZk5EjR14RilJ9+OGH7N+/P/ubExHJoTRjJCIiuda0\nadMYPny4RzVOnTqFn59vfI54/Phx3n77bf773/9y9uzZG+6bmJjIpEmTmDBhQjZ1JyKSsykYiYhI\nrnP06FHuvPNOj2p8+umnNG3a1KGOPHP48GEiIiKYN28esbGx6R737rvvMnToUMqVK5eF3YmI5A6+\n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\nHbc7rTl0guuqq66iT58+9OzZM81tmjdvTt++falevXoAeyYiIqFK842KiISRr7/+GpfL5XMoGjRo\nUMiGoiQdOnSgdOnSlywzxtCmTRvWrFnD3LlzFYpEROQi3apbRCQMfPPNN/Tv398vtbZu3RqwSRXi\n4uKYPn06lStX5sEHH8xU27x58/LCCy/Qt29fcufOTbt27ejTpw8VK1bMot6KiEh2pmAkIpLDtWjR\ngu+++84vtQ4fPkzevKndZcG/3G43b731FtOmTSMuLo7KlSvTrFmzTN9Y9bHHHuO3337jmWeeoXz5\n8lnUWxERyQl0Kp2ISA504sQJ3nzzTVwul8+haN68eezfvx+3253loejYsWOMGDGCW2+9lTFjxhAX\nFwfAL7/8wpIlSzJdL3/+/IwePVqhSERE0qURIxGRHOSPP/7gtttu80utFStWcMcdd/ilVnqOHj3K\npEmTePfddzl16lSq20RGRtKiRQvdV0hERLKERoxERHKI2bNn+yUUNWzYkEOHDgUkFB0+fJihQ4dy\n2223MXHixDRDEcD27dtZvnx5lvdJRETCk0aMRERygMjISF599VWf6xw9epQ8ebL+o+HQoUNMnDiR\nmTNncubMmQy3Gzt2LE2aNNGokYiI+J2CkYhINrZy5UpatWrlc501a9YE5OasBw8eZOLEibz//vuc\nPXs20+2///57VqxYwX333ZcFvRMRkXCmYCQikg0dPXqUW265xec6y5Yt4+677/ZDj67swIEDvPHG\nG8yePZtz5855Xado0aLExMT4sWciIiIeCkYiItlIYmIiDRo0YPv27T7VKVSoEAcOHPBTr9K2f//+\ni4Ho/PnzXte5/vrr6dGjB126dOHqq6/2Yw9FREQ8FIxERLKJ++67j++//97nOuPHj6dr165+6FHa\n/vjjDyZMmMDcuXOJj4/3uk6JEiXo1asXnTt3pkCBAn7soYiIyKUUjEREQtzkyZN56aWXfKpRpUoV\nevfuTdu2bbN04oLo6GgmTJjAvHnzfApEpUqV4oUXXuDxxx8nf/78fuyhiIhI6hSMRERCVL9+/Zg+\nfbrPddxuN7t27QLIslC0Z88exo0bx/z580lISPC6TunSpenduzcdO3YkX758fuyhiIjIlSkYiYiE\nmLVr1/LAAw/4pZbb7fZLnbT8/vvvREZG8uGHH3LhwgWv65QpU4Y+ffrwyCOPkDdvXj/2UEREJGMU\njEREQkR8fDzFixf3S62lS5dSp04dv9RKy88//8w999xDYmKi1zXKli17MRBdddVVfuydiIhI5uQK\ndgdERAQmTpzol1C0cuVK3G53locigMqVK3PnnXd61fbmm29mypQpbN68mU6dOikUiYhI0CkYiYgE\n0cyZM3G5XLz88ss+1bn33nuJjY2levXqfupZ+owx9O/fP1NtbrnlFqZNm8amTZvo2LGjApGIiIQM\nnUonIhIEFy5coFixYj7XqV+/Ph999FHQrstp1KgRd9xxB1u2bLnidhUrVqRv3760bduW3LlzB6h3\nIiIiGacRIxGRALLWMnHiRL+EooMHDxIVFRXUyQqMMQwYMCDN9f/4xz+YMWMG69ato3379gpFIiIS\nsjRiJCISIOvXr6dp06Y+11mzZg1Vq1b1Q48uZ63N9JTejRs3pnr16mzduvXisipVqtC/f39atmxJ\nrlz6G5yIiIQ+fVqJiGQxay0ul8vnUHT48GHcbneWhKIffviB//f//h8zZszIdNvk1xpVrVqVWbNm\nsXr1alq1aqVQJCIi2YZGjEREstDJkycpXbq0TzUWLVrEfffd56ceXWrz5s28/vrr/Pe//wXgf//7\nH48//nimb67arFkzFi9eTIMGDRSGREQkW1IwEhHJImfOnPE5FMXExGRJ0Ni8eTOjR4/mq6++umT5\ngQMH+OCDD+jatWum6hljaNiwoT+7KCIiElD6s56IiB9Za1m6dCkul4sSJUp4Xeebb77B7Xb7PRR9\n//33PPzwwzRq1OiyUJRk/PjxnD9/3q/7FRERCXUaMRIR8ZNTp05RqlQpn2ps3bqVcuXK+adDyfz0\n009Mnz6dNWvWpLvt/v37+c9//kPnzp393g8REZFQpREjEREfnTx5kjlz5vgcio4cOeL3ULRlyxba\nt2/PE088kaFQlGTcuHHEx8f7tS8iIiKhTCNGIiJe2rdvH7feeqvPdaKjo3G5XH7o0d9++OEHRo8e\nzfLly71q/8cffzB//nwef/xxv/ZLREQkVCkYiYhkkj9mmgOYN28eDzzwgB969LetW7cyatQorwNR\nknvuuYeKFSv6qVciIiKhT8FIRCQTlixZwmOPPeZzHX9fS7R161ZGjx7NsmXLfKpTv359+vfvT926\ndf3UMxERkexBwUhEJAPOnz/P9ddf75daO3fu9FutrVu3MmbMGL744guf6jRo0IABAwYQERHhl36J\niIhkN5p8QUQkHYmJiX4JMj179sTtdvul1rZt23j00Udp0KCBT6Gofv36fPHFF3zyyScKRSIiEtY0\nYiQikoa9e/cyYMAAn09PGzFiBD169PBLn7Zv386YMWP4/PPPfapTv359BgwYQJ06dfzSLxERkexO\nwUhEJIUzZ874dHPW5JYsWcI999zjcx1/BaJ69eoxYMAAXUMkIiKSgoKRiIjDWsuTTz7J4sWLfapT\nunRpFi9e7LdZ3fbs2UO9evV8qlGzZk2eeuopOnTo4Jc+iYiI5DQKRiIiwK+//srdd9/tU40pU6bQ\nsWNHP/XobzfffDNNmjTxagruunXrMnDgQG688Ua/90tERCQnUTASkbAWHx9P8eLFfa5z7NgxcufO\n7YcepW7QoEGZCkZ16tRh0KBB3HvvvQDs2rUrq7omIiKSI2hWOhEJS263m2HDhvkciqKionC73Vka\nigCqV69O06ZN090uIiKCTz/9lM8///xiKBIREZH0acRIRMLK1q1badCggV9q7dixgxtuuMEvtTJi\n4MCBac6QFxERwcCBA6lXrx7GmID1SUREJKfQiJGIhIVJkybhcrn8For+/PNPn0KRtTbTbapXr06z\nZs0uWXb33XcTFRXF0qVLqV+/vkKRiIiIlxSMRCRH+/nnn3G5XAwdOtTnWp07d+b777/H7XZTsGBB\nr2r8+uuvdOnShcjISK/aDxgwAIDatWvzySef8MUXXygQiYiI+IFOpRORHMntdlOuXDm/1CpZsiRf\nf/21T/c22rVrF6+//joLFy7EWsuKFSt4+umncblcmapTvXp1vv32W2677TaFIRERET/SiJGI5CjW\nWu68806/haKjR4/y888/ex2K9uzZw7PPPkvt2rX56KOPLp5CFxcXx7Rp07yqefvttysUiYiI+JmC\nkYjkCNHR0dSpU4ciRYrw+++/+1wvMjISt9tNnjzeDazv3buXHj16ULNmTf7zn/+QmJh42TZTp07F\n7Xb72lURERHxA51KJyLZ3uDBg5k6darf6vlyT6L9+/czfvx45syZQ3x8/BW3PX78ONOmTWPgwIFe\n7UtERET8RyNGIpJtDR06FJfL5ZdQ9OCDD/Lll196fU+igwcP0q9fP+644w7ee++9dENREo0aiYiI\nhAaNGIlItvPzzz9Tp04dv9T66KOPuP/++71uf/jwYSZMmMDMmTM5e/ZsptsfP36ct956i0GDBnnd\n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\nHs0777zjbTdFREQkBwupYCQioe3IkSN+vXHbd999x6233prudocOHWL8+PHMnDmT8+fPe70/ay0X\nLlwgd+7cXtcQERGRnCnbnEonIsH18ssv+y0URUVF4Xa70w1FMTExDB8+nBo1avD22297HYoeeOAB\nVq9ezfTp0xWKREREJFUaMRKRdD366KMsXbrU5zrbt2+nTJky6W4XFxfH1KlTmTp1KidOnPB6f/fd\ndx+DBw/mzjvv9LqGiIiIhAcFIxFJ06lTpyhVqpTPde666y6+/PLLDO1v+vTpTJw4kdjYWK/3FxER\nwUsvvUTdunW9riEiIiLhRafSichlEhISmDNnjs+hqEOHDhw8eDDdUHT27FneeustqlevzvDhw70O\nRXfeeScff/wxS5cuVSgSERGRTNGIkYhc4quvvqJdu3Zet69bty6ff/55hraNj4/ngw8+YOzYsRw4\ncMDrfVatWpUhQ4bQrFkzjDFe1xEREZHwpWAkIhe5XC6f2v/111/kz58/Q9suWrSIESNGEB0d7fX+\nKlSowODBg3nooYfIlUsD4CIiIuI9/SYhIhw+fNinULR69WrcbneGQxHA+vXrvQ5FZcqUYerUqaxb\nt47WrVsrFImIiIjP9NuESJirX78+FStW9Lq92+2mWrVqmW7Xt29fChYsmKk2JUqUYPz48WzevJlH\nH32UPHk06C0iIiL+oWAkEqaioqJwuVxs27bNq/Yul8unmeNuuOEGunXrlqFtr7vuOkaOHMmWLVvo\n2rUrefPm9Xq/IiIiIqnRn1tFwsiSJUt47LHHfK6zdetWypUr53Odnj17MmPGDOLi4lJdX7hwYXr1\n6sUzzzzD1Vdf7fP+RERERNKiYCQSBmJiYihfvrxfau3bt49rrrnGL7VcLhe9evXilVdeuWT51Vdf\nTffu3enevbvPE0KIiIiIZIROpRPJ4bZt2+aXULR582bcbneaoejUqVNe1f3Xv/7F9ddfD0CBAgXo\n2bMn27ZtY/DgwQpFIiIiEjAKRiI51MmTJ3G5XNSvX9+nOt27d8ftdnPLLbekut7tdvPvf/+bypUr\ns3v37kzXL1SoEIMGDeLpp5/mhx9+4JVXXqFYsWI+9VlEREQks3QqnUgOtG3bNp8DEcC6deuoXLly\nqutOnjzJ22+/zcSJEzl+/DgAI0eO5N133830frp06eJTP0VERER8pREjkRwkISGBtm3b+hyKmjdv\nTmxsbKqh6Ny5c7z99tvUqFGDESNGXAxFAAsXLuTHH3/0ad8iIiIiwaARI5EcwFpLr169WLt2Rop9\nQgAAIABJREFUrc+1fvzxR2666abLlickJLBgwQJGjx7Nvn370mz/2muvMX/+fJ/7ISIiIhJIGjES\nyeb27dtHkSJFfA5FUVFRuN3uy0KRtZaoqCjq1KnDc889d8VQBLBs2TI2bNjgU19EREREAk3BSCQb\n++abb7j11lu9br9t2zbcbjdut/uy0++staxYsYJ//vOfdO7cmZ07d2a47iuvvIK11ut+iYiIiASa\ngpFINnTkyBGee+45Wrdu7XWN6OhoypYtm+q6DRs20Lx5c9q0acPWrVszXXvNmjWsWrXK676JiIiI\nBJquMRLJRk6cOMHNN99MQkKC1zUmTpxIp06dMMZctu6nn35ixIgRLFu2zOv6N954I/379yciIsLr\nGiIiIiKBpmAkkg2cP3/+4k1QffHXX3+RP3/+y5b/8ccfjBw5kgULFnh9ClyRIkV48cUXeeqppyhY\nsKCvXRUREREJKAUjkRCWmJhIixYtWLNmjU91qlSpwurVq8mV69KzZ48dO0ZkZCQzZszg/PnzXtUu\nVKgQ3bt35/nnn6dw4cI+9VNEREQkWBSMREKUtZaiRYv6VKN8+fKsXbv2slGikydPMnXqVCZNmsSJ\nEye8qp03b16efPJJevfuTfHixX3qp4iIiEiwKRiJhBhrLVOnTmXIkCE+1fnjjz+49tprL1l2/vx5\nZs2axdixYzl8+LBXdXPlykXHjh3p379/qvc7EhEREcmOFIxEQsSZM2eoVq0ax44d87lWTEzMJafN\nJSYmsnjxYl599VWio6O9rtu6dWsGDx5MhQoVfO6jiIiISChRMBIJATNnzuTFF1/0Sy23233J1zt3\n7uSpp55i+/btXte8//77GTJkCNWrV/e1eyIiIiIhScFIJIg2btxI48aNfa7TsmVLevTogcvlumzd\n9ddfzx9//OFV3dq1azNs2DDq1q3raxdFREREQppu8CoSBAkJCbhcLp9D0YgRI4iNjWX27NmphiIA\nl8tFnz59MlW3cuXKzJs3j2XLlikUiYiISFhQMBIJsDlz5nDdddf5VKNJkya43W569OiR6o1aU3r6\n6acpVapUutuVLl2aKVOmsHr1ah544IEM1RYRERHJCRSMRAJk06ZNuFwuevTo4VOdfv36sWDBgky1\n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\niEjY+//veSisFELtUAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2d3c5f52b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "x = np.arange(2, 10000)\n",
    "fig, ax = plt.subplots(1, 1, figsize=(6, 4))\n",
    "ax.plot(x, list(map(nt.primepi, x)), '-k',\n",
    "        label='$\\pi(x)$')\n",
    "ax.plot(x, x / np.log(x), '--k',\n",
    "        label='$x/\\log(x)$')\n",
    "ax.legend(loc=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "podoc": {
     "output_text": "{2: 1, 3: 3, 37: 1}"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "{2: 1, 3: 3, 37: 1}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nt.factorint(1998)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "podoc": {
     "output_text": "1998"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJ0AAAA5BAMAAADehTQdAAAAMFBMVEX///+6uroiIiJmZmZUVFSI\niIiYmJh2dnaqqqoQEBDMzMzc3NwyMjJERETu7u4AAAA2QFqhAAAAAXRSTlMAQObYZgAAAAlwSFlz\nAAAOxAAADsQBlSsOGwAABE5JREFUWMONl01ME0EUxwekfPUD4oV4Kl7lUC4eNEaIZxRiokYv7ckY\nE22NJy/SxGjQA0ViYqKJS/CIH43xYBQpCYkeTCyBGBMOtmiCkohoaYVKy3M+dj52O7NlDnT3x8x/\nZ9689+YNQqytfUCu9mMgUviU3g1cGbAK70cdqN3acnV6AqQVOuvDpxTCYZUNw1+n3FuAd8+Wh6Ga\nrgfXoHhu5vUlgBOSnQWXXgPAA/zjz9EfT2iV8uT3O5T5tF8NglsvDlXaqwnKE94wxRhCk0BNduN4\nhC7foecDeMSesvDQE7ZDr/0UigD5Cpnb/WmXXhjAnnwGKp5wVTyhVejGfw+Nz11EAaee34IN+3EP\nQMwDor5tMaoVSvzRpYdfeTe/WKQW+mFeDouUDXopgFnRCTY9oA8ScliU28Oth3dIdOuDsgcMiIXj\n9ly8OPWwn0FSmWvSCFEHDMlx6+KDTj1sbkjLj0K/EeKd7pfjOsSLU69NHboOsGOEWHin/vwyeGhe\nfpT5vRZinyyqXqu3X9g1dNMIyVdiSlJJa/WwtUFdfNUIpTBpVkXvf3F1aCMw39BCFMT0iw2b4Y9e\nL+oaSpehhTjGQKx4VcaKh17A9jstxGvETxUqHcqW86i+/cjQIRNkZmB5ICCTmGZ/HUMTJkhyK2kH\n8PRySpL18D9iql4TxDIWFUygffARGfQaXa5Gw0gLcXvBjrwud8IzxS+Z17wJIjvB41bMG/WIE3Sq\nmzNrgsztaLuLjHrECWIy1QE9F/SQtGkmeNSsFwdxalEHGzNCZUvKSaNem+xN0iibihYy92eC1bxJ\nD9uKh2KwyE2lhbjthf0tbMU9Jj1sH54qwlfFVmoh3vcNbkLp0G69ALd9yPomXE0LQ1kKadjBP5Me\nytn/C241iVDQwq/MCCHqhQWjXhPLH/7IUFCEqhZGbKdsoHvSb9JDt6E6ipYHN2nGjBlhUKRnuifb\nRj10zfapgBpnNTAla4ZJEnRmPfR4Ae7FWB4wQwsmkBo0ebOe++jRQZ/6vxZZQXjodYAsw2pgANQy\nPio8wUMvLMOiFq6r5QHZpdm6elEl8mtgWEYxKwu76+oNglriuWBcLSeJw4/V1Yso7lIDo2p5RV7r\nrjek214BXfNLcXm33slKUl4StszQaT/8mtDqNcnXRrFnOpiB385b0IRWL8PLHeoZaTNsc/gf6isY\n63seOTkR8DrocxrXKhnPI3toqzwndDCknKHk5OyWBik53b/CazAR8FoYVTdkVYi3qWUmLbd7+Mr+\neMKAvMnh1L+hxI9SHeFAvCIiMukJ8aWSl6c49RPvax25dSpHk//B8yN3+CWUuSm+Ocv900L0U1yj\nm1k2zYDS+OSj5cvk48N26ekBySlKZ7sSYSeAVg/XOIunz2SdqUALUTuO5c8Xbh4BWGLvUzO8Tvj1\nZor3eskO6OuOsNVC1GAXbEvIq60cs8pznbuBKNS1YI0v2vg/89uyvEAHWLYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "1998"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "2 * 3**3 * 37"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "podoc": {
     "output_text": "(58, 60)"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "(58, 60)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sympy.ntheory.modular import solve_congruence\n",
    "solve_congruence((1, 3), (2, 4), (3, 5))"
   ]
  }
 ],
 "metadata": {},
 "nbformat": 4,
 "nbformat_minor": 2
}
